/**
 * 公司设置
 */
require(['zTreeCheckbox','select2', 'validator'], function () {
	
	var userInfo = commonFun.execParentMethod("getUserInfo");               //当前登录用户信息
	//如果是最高管理员登录,可以让其看到所属公司
	var isAdminRole = userInfo.isAdminRole;                                 //是否超级管理员
	var getTreeDataUrl = "/sysCorpInfo/getJurisdictionCorpInfoList.htm",				//左侧树url
		saveUrl =  "/sysCorpInfo/saveSysCorpInfo.htm",						//保存公司url
		updateUrl = "/sysCorpInfo/updateSysCorpInfo2.htm",					//更新公司url
		delUrl = "/sysCorpInfo/delSysCorpInfo.htm",							//删除公司url
		saveOrUpdateUrl = "",												//保存时url（增加/更新）
		sysCorpTreeObj = {},												//公司树
		$sysCorpForm = $("#sysCorpForm"),									//公司表单
		$sysCorpTree = $("#sysCorpTree");									//公司树对应页面元素

	//获得节点数据，并且生成左侧的树
	function initsysCorpTree(nodeId){
		var node;
		$.ajaxExt({
			url : getTreeDataUrl
		}).done(function(data){
//			console.info(data);
			console.info(isAdminRole);
			if(commonFun.execParentMethod('getUserInfo').roleType ==='ROLT0001'){
				if (!data) {
					data = [];
				}
				// 树的参数配置
				var setting = {
					data: {
						key: {
							name: "corpName"
						},
						simpleData: {
							enable: true,
							idKey: "corpId",
							pIdKey: "parentCorpId",
							rootPId: 0
						}
					},
					view: {
						showIcon: true
					},
					callback: {
						onClick: sysCorpTreeClick
					}
				};
				//生成树
				sysCorpTreeObj = $sysCorpTree.createTree(setting, data, {search: $('#searchlabel')});//$.fn.zTree.init($sysCorpTree, setting, data);
				sysCorpTreeObj.expandAll(true);
				if(typeof nodeId !== "undefined"){//选中对应节点
					sysCorpTreeObj.setting.view.expandSpeed = "";
					sysCorpTreeObj.setting.view.expandSpeed = "fast";
					node = sysCorpTreeObj.getNodesByFilter(function(node) { return node.corpId == nodeId; }, true);
//					sysCorpTreeObj.selectNode(node,false);
//					sysCorpTreeClick(null,node.corpId,node,true);
				}else{//选中第一个节点
//					sysCorpTreeObj.expandAll(true);
					node = sysCorpTreeObj.getNodesByFilter(function(node) { return node.level == 0; }, true);
				}
				sysCorpTreeObj.selectNode(node,false);
				sysCorpTreeClick(null,node.corpId,node,true);
			}else{
				$("#left").hide();
				setFormValues(data);
				$("#corpCd").attr("readonly", true);
				$("#enabledSt0").attr("disabled", true);
				$("#enabledSt1").attr("disabled", true);
				$("#corpType").attr("disabled", true);
			}
		});
	}
	
	function init() {
		$("#sysCorpForm").initForm();
		$(window).on('resize', initHeight).trigger('resize');
	    $('.slide-panel').on('click', function () {
	        $('#left').css('margin-left', $(this).toggleClass('slide-panel-active').hasClass('slide-panel-active') ? -250 : 0);
	    });
	}
	
	/**
	 * 进行初始化工作
	 */
	function initHeight(){
		var height = $(window).height();
		$sysCorpTree.parent().height(height - 45);
		$sysCorpTree.height(height - 55);
		$('#right').height(height);
	}
	
	/**
	 * 点击树节点
	 */
	function sysCorpTreeClick(event, treeId, treeNode,clickFlag){
		//右侧的“保存”按钮，将会变成更新的功能
		saveOrUpdateUrl = updateUrl;
		if(treeNode.level === 0){
			$("#delete").hide();

        }else{
			// 显示删除按钮
			$("#delete").show();
		}
		debugger
		if(commonFun.execParentMethod('getUserInfo').corpId==treeNode.corpId||treeNode.level === 0){
			$("#enabledSt0").attr("disabled", true)
			$("#enabledSt1").attr("disabled", true)
		}else{
			$("#enabledSt0").attr("disabled", false)
			$("#enabledSt1").attr("disabled", false)
		}
		//对应填充右侧数据
		fillfn(treeNode);
	}

	/**
	 * 展示选中公司信息
	 */
	function setFormValues(item) {
		$sysCorpForm.setValues(item);
		//选中radio
		if (item.enabledSt == 1) {
			$("#enabledSt0").attr({checked: "checked"});
		} else {
			$("#enabledSt1").attr({checked: "checked"});
		}
	}

	/**
	 * 点击左侧机构列表，填充右侧信息
	 */
	var fillfn = function(item) {
		setFormValues(item);
		//通过点击的节点，获得父节点名称，显示在右侧的上级机构框中
		var treeNode = sysCorpTreeObj.getSelectedNodes()[0]; // 获取当前节点
		if(treeNode.getParentNode() != null){
			var pCorpName = treeNode.getParentNode().corpName;
			$("#pCorpName").val(pCorpName);
		}else{
			$("#pCorpName").val("没有上级企业");
		}
	};
	
	// add 左侧点击“新增”的事件
	$("#add").on("click", function(){
		var treeNode = sysCorpTreeObj.getSelectedNodes()[0]; // 获取当前节点
		if(treeNode.level === 1){
			$.messager.alert("提示", treeNode.corpName + "下不能创建子公司。", "warning");
		}else{
			// 对应修改右侧“保存”按钮的功能
			saveOrUpdateUrl = saveUrl;
			// 隐藏删除按钮
			$("#delete").hide();
			// 将右侧的表单数据清空
			$sysCorpForm.reset();
			// 将左侧选中的树节点，设到右侧的上级分组文本框中
			$("#pCorpName").val(treeNode.corpName);
			$("#parentCorpId").val(treeNode.corpId);
			$("#enabledSt0").attr({checked:"checked"});
		}
	});

	// add upt “保存”或者“更新”记录
	$('#saveOrUpdate').on("click",function(){
		// 表单校验功能模块
		if($.validator($sysCorpForm)){
			// 通过ajax访问后台，操作数据库
			var loadMask = $.createMask();
			$.ajaxExt({
				url : saveOrUpdateUrl,
				data : $sysCorpForm.getValues()
			}).done(function(data){
				// 提醒操作成功
				if(saveOrUpdateUrl === saveUrl){
					$.messager.alert("提示","您成功新增了一个企业信息。","success");
				}else if(saveOrUpdateUrl === updateUrl){
					$.messager.alert("提示","您成功修改了一个企业信息。","success");
				}
				// 刷新一下改变后的数据
				initsysCorpTree(data);
			});
			loadMask.remove();
		}
	});

	// del “删除”组织
	$('#delete').click(function(){
		var treeNode = sysCorpTreeObj.getSelectedNodes()[0]; // 获取当前节点
		if(treeNode.isParent){
			$.messager.alert("警告","这个企业拥有下级企业，这个企业不能删除。","warning");
		}else{
			var corpId = treeNode.corpId;
			$.messager.confirm("是否删除","是否删除该企业？",function(r){
				if(r){
					var loadMask = $.createMask();
					$.ajaxExt({
						url : delUrl,
						data : {'corpId':corpId}
					}).done(function(data){
						$.messager.alert("警告","您成功删除企业。","warning");
						//刷新一下改变后的数据
						if(treeNode.getParentNode() !== null){
							initsysCorpTree(treeNode.parentCorpId);
						}else{
							initsysCorpTree();
						}
						
					});
				}
				loadMask.remove();
			});
		}
	});

	initsysCorpTree();

    init();
});